package nlp.parser;

import java.util.Collection;
import java.util.Iterator;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import nlp.helpers.BundleReader;
import nlp.helpers.LectorArchivos;

/**
 * @author lgorbliuk
 */
public abstract class RegexpParser {

	
	private Collection prefijos;
	
	public RegexpParser() {
		 this.prefijos = LectorArchivos.getLines(BundleReader.getProperty(this.getPrefixFile()));
	}
	
	public String procesarEntrada(String candidate){
	
		for (Iterator iter = prefijos.iterator(); iter.hasNext();) {
			String prefijo = (String) iter.next();
			Pattern patron = Pattern.compile("^" + prefijo + ".*");
			Matcher encaja = patron.matcher(candidate);
			if(encaja.matches()){
				return this.getResultado();
			}
		}
		return null;
	}
	
	protected abstract String getPrefixFile();
	
	protected abstract String getResultado();
	
	public Collection getPrefijos() {
		return prefijos;
	}
	
}
